package com.hundsun.s3.mrs.core.chain;

import java.util.List;

import com.hundsun.s3.mrs.core.handler.IHandler;

/**
 * 任务链必须实现的接口
 * @author chenji23607
 *
 */
public interface IChain extends IHandler {
	/**
	 * 获取任务链的名称
	 * @return
	 */
	String getChainName();
	
	/**
	 * 获取任务链上的所有处理器
	 * @return
	 */
	List<IHandler> getHandlers();
	
	/**
	 * 移除一个处理器
	 * @param handler
	 */
	void removeHandler(IHandler handler);
	
	/**
	 * 添加一个处理器
	 * @param handler
	 */
	void addHandler(IHandler handler);
	
	/**
	 * 获取当前执行的处理器下标，从0开始
	 * @return
	 */
	int getIndex();
	
	void setIndex(int i);
}
